home *** CD-ROM | disk | FTP | other *** search
- (*
- $RCSfile: GenPasswd.mod $
- Description: Unix password generator.
-
- Created by: fjc (Frank Copeland)
- $Revision: 1.4 $
- $Author: fjc $
- $Date: 1995/01/26 01:05:15 $
-
- Copyright © 1994, Frank Copeland.
- This file is part of Oberon-A.
- See Oberon-A.doc for conditions of use and distribution.
-
- Log entries are at the end of the file.
-
- I wrote this program after I apparently had my university account broken
- into. It simply generates a random string of characters of a given
- length.
- *)
-
- <*STANDARD-*>
-
- MODULE GenPasswd;
-
- IMPORT Errors, Args, RN := RandomNumbers, IO := StdIO;
-
- CONST
- VersionTag = "$VER: GenPasswd 1.3 (24.9.94)\r\n";
- VersionStr = "GenPasswd 1.3 (24.9.94)\r\n";
- CopyrightStr = "Copyright © 1993-1994 Frank Copeland\n\n";
-
- CONST
- startChar = ORD ("!");
- range = ORD ("~") - ORD ("!") + 1;
-
- VAR i, j, numChars, count : LONGINT;
-
- (*------------------------------------*)
- PROCEDURE StrToInt (s : ARRAY OF CHAR) : LONGINT;
-
- VAR i, j : LONGINT;
-
- <*$CopyArrays-*>
- BEGIN (* StrToInt *)
- i := 0; j := 0;
- WHILE s [i] # 0X DO
- IF (s[i] < "0") OR (s[i] > "9") THEN
- IO.WriteStr (" !! Error: Illegal char in parameter\n");
- HALT (20)
- END;
- j := (j * 10) + (ORD (s[i]) - ORD ("0"));
- INC (i)
- END;
- RETURN j
- END StrToInt;
-
- BEGIN
- IO.WriteStr (VersionStr);
- IO.WriteStr (CopyrightStr);
- IF Args.argc = 1 THEN
- count := 1; numChars := 8
- ELSIF Args.argc = 2 THEN
- count := 1; numChars := StrToInt (Args.argv [1]^)
- ELSIF Args.argc = 3 THEN
- numChars := StrToInt (Args.argv [1]^);
- count := StrToInt (Args.argv [2]^)
- ELSE
- IO.WriteStr ("Usage: GenPasswd [<password length>] [<# of passwords>]");
- HALT (10)
- END;
- RN.TimeSeed;
- FOR i := 1 TO count DO
- FOR j := 1 TO numChars DO
- IO.Write (CHR (ENTIER (RN.Uniform () * range) + startChar))
- END;
- IO.WriteLn()
- END
- END GenPasswd.
-
- (***************************************************************************
-
- $Log: GenPasswd.mod $
- Revision 1.4 1995/01/26 01:05:15 fjc
- - Release 1.5
-
- Revision 1.3 1994/09/25 18:25:17 fjc
- - Uses new syntax for external code declarations
-
- Revision 1.2 1994/06/05 22:24:19 fjc
- - Added count parameter
-
- Revision 1.1 1994/05/12 20:20:07 fjc
- - Prepared for release
-
-
- ***************************************************************************)
-
-
-